package com.coffee.attachment.entity;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.coffee.mybatis.TenantEntity;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.Optional;

/**
 *
 * 
 *
 * @author Songkui
 * @since 2023-05-11
 */
@Getter
@Setter
@EqualsAndHashCode(of ={"id"}, callSuper = false)
@Accessors(chain = true)
@NoArgsConstructor
@TableName("attach_document")
public class AttachDocumentEntity extends TenantEntity {

    private static final long serialVersionUID = 563434L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 文档属于某人【0表示所有人可见】
     */
    @TableField("doc_user")
    private Long docUser;

    @TableField("minio_bucket")
    private String minioBucket;

    @TableField("minio_object")
    private String minioObject;

    /**
     * 标题： 【导入导出则 对应 sys_excel表中的title】
     */
    @TableField("doc_title")
    private String docTitle;

    /**
     * 主图扩展名
     */
    @TableField("doc_exte")
    private String docExte;

    /**
     * 文档类型：1：导入； 2：导出， 3，教程
     */
    @TableField("doc_type")
    private Integer docType;

    /**
     * 文档编码【随机编码格式：时间+4位随机数】
     */
    @TableField("doc_code")
    private String docCode;

    /**
     * 下载量
     */
    @TableField("doc_download")
    private Integer docDownload;

    /**
     * 文档描述
     */
    @TableField("doc_describe")
    private String docDescribe;


    public boolean checkMinio(){
        return StrUtil.isEmpty(this.minioBucket) || StrUtil.isEmpty(this.minioObject) ? false : true;
    }

    public String buildFileName(){
        return String.format("%s-%s%s", Optional.of(this.getDocTitle()).orElse("未知标题"), Optional.of(this.getDocCode()).orElse("未知DocCode"), Optional.of(this.getDocExte()).orElse(".xlsx"));
    }


}
